package Logica.PowerUps;

import Graficas.InterfaceGrafica;
import Graficas.SpriteMovements;
import Graficas.SpriteMovementsPrioridad;
import Logica.Mario;
import Logica.Celdas.Celda;
import Logica.Enemigos.Enemigo;

/**
 * Esta clase es un powerup especial que le aplica invulnerabilidad a Mario y ademas mata a
 * cualquier enemigo que colisione con Mario.
 * 
 * @author Mariano Rodecker
 * @author Matias Varela
 * 
 */
public class Estrella extends PowerUp {
	/* << CONSTRUCTOR >> */
	public Estrella(int sizeX, int sizeY, SpriteMovements sm, InterfaceGrafica ig) {
		super.iniObjeto(sizeX, sizeY, sm, ig);
	}

	/* << COMANDOS >> */
	
	/**
	 * Realiza el mevimiento del powerup
	 */
	public void moverse() {
		super.moverse();
	}

	public void modificarMario(Mario m) {

	}

	

	@Override
	public void disparar() {
		// TODO Auto-generated method stub

	}

	@Override
	public void golpear(Celda c) {
		// TODO Auto-generated method stub
		c.romper();
		super.golpear(c);
		
	}
	
	@Override
	public void hacerInvulnerable() {
		mario.hacerInvulnerable(15000, true);
		quitarCaracteristica();
		
	}

	@Override
	public void aumentarVidas() {
		// TODO Auto-generated method stub

	}

	@Override
	public void matarEnemigosVisibles() {
		// TODO Auto-generated method stub

	}

	@Override
	public void morirMario() {
		// TODO Auto-generated method stub

	}

	@Override
	public void hacerAccion() {
		hacerInvulnerable();
	}
	
	/* << CONSULTAS >> */
	public PowerUp clone() {
		Estrella pw = new Estrella(this.sizeX, this.sizeY, this.sm.clone(), this.ig);
		pw.setX(this.getX());
		pw.setY(this.getY());
		pw.setDirActual(this.getDirActual());
		pw.setInteligencia(this.intel);

		return pw;
	}

	@Override
	public void aumentarPuntos() {
		mario.aumentarPuntos(intel.getPuntuacion().puntosPorEstrella());
	}
	

}
